#!/usr/bin/env python
# chmod a+x monoslam.cfg
PACKAGE = "thermalvis"
import roslib; roslib.load_manifest("dynamic_reconfigure")
import roslib; roslib.load_manifest(PACKAGE)

# echo $PACKAGE

from dynamic_reconfigure.parameter_generator import *

gen = ParameterGenerator()

gen.add("minStartupScore", double_t, 0, "Minimum keyframe pair score for initialization", 0.8000, 0.0000, 1.0000)

gen.add("flowback", int_t, 0, "Flowback frames (per adjustment)", 3, 0, 10)
gen.add("keyframeSpacing", int_t, 0, "See the paper, variable K", 5, 0, 100)
gen.add("maxKeyframeSeparation", int_t, 0, "Maximum number of frames separating keyframes", 15, 0, 100)
gen.add("minKeyframeScore", double_t, 0, "Minimum required keyframe score", 20.0, 0.0, 100.0)

gen.add("adjustmentFrames", int_t, 0, "Adjustment frames", 50, 1, 100)
gen.add("motionThreshold", double_t, 0, "Maximum amount of tolerated motion", 20.0, 1.0, 100.0)
gen.add("framesForTriangulation", int_t, 0, "Number of frames a feature must appear in before it's triangulated", 8, 1, 100)
gen.add("min3dPtsForPnP", int_t, 0, "Minimum number of points to use to estimate pose of camera", 24, 0, 100)
gen.add("camerasPerSys", int_t, 0, "Cameras to consider for each bundle adjustment", 10, 0, 100)
gen.add("minTrackedFeatures", int_t, 0, "Minimum number of features that must be tracked", 50, 0, 500)
gen.add("maxGuides", int_t, 0, "Maximum number of camera views to consider for initial pose estimate", 5, 0, 100)
gen.add("minGeometryScore", double_t, 0, "Minimum required geometry score", 30.0, 0.0, 100.0)
gen.add("requiredTrackFrac", double_t, 0, "Required proportion of tracks to be maintained between frames", 0.80, 0.00, 1.00)
gen.add("dataTimeout", double_t, 0, "Time (sec) after which no data triggers program exit", 5.0, 0.0, 60.0)

gen.add("initialStructureIterations", int_t, 0, "Number of iterations to perform finalizing initial structure", 1000, 0, 1000)
gen.add("poseEstimateIterations", int_t, 0, "Number of iterations to perform when putatively estimating a camera pose", 10, 0, 1000)
gen.add("fullSystemIterations", int_t, 0, "Number of iterations to perform each cycle on the full system", 10, 0, 1000)
gen.add("keyframeIterations", int_t, 0, "Number of iterations to perform each cycle on the keyframes", 10, 0, 1000)
gen.add("subsequenceIterations", int_t, 0, "Number of iterations to perform each cycle on the subsequence", 100, 0, 1000)

gen.add("verboseMode", bool_t, 0, "Display additional debug info", False)
gen.add("timeDebug", bool_t, 0, "Display timing information", False)
gen.add("timeSpacing", int_t, 0, "Number of frames to wait before publishing timing info", 5, 0, 100)







exit(gen.generate(PACKAGE, "monoslam", "monoslam"))
